package com.ruoyi.match.mapper;

import java.util.List;
import com.ruoyi.match.domain.Teams;
import com.ruoyi.match.domain.vo.TeamsAddVo;
import com.ruoyi.match.domain.vo.TeamsInfoVo;
import com.ruoyi.match.domain.vo.TeamsVo;
import org.apache.ibatis.annotations.Param;

/**
 * 队伍Mapper接口
 * 
 * @author zhangrui
 * @date 2025-03-26
 */
public interface TeamsMapper 
{
    /**
     * 查询队伍
     * 
     * @param teamId 队伍主键
     * @return 队伍
     */
    public Teams selectTeamsByTeamId(Long teamId);

    /**
     * 查询队伍列表
     * 
     * @param teams 队伍
     * @return 队伍集合
     */
    public List<Teams> selectTeamsList(Teams teams);

    /**
     * 新增队伍
     * 
     * @param teams 队伍
     * @return 结果
     */
    public int insertTeams(Teams teams);

    public Long selectLastTeamsId();



//    /**
//     * 事务新增队伍，队长队伍
//     *
//     * @param teams 队伍
//     * @return 结果
//     */
//    public int addTeams(TeamsAddVo teams);

    /**
     * 修改队伍
     * 
     * @param teams 队伍
     * @return 结果
     */
    public int updateTeams(Teams teams);

    /**
     * 删除队伍
     * 
     * @param teamId 队伍主键
     * @return 结果
     */
    public int deleteTeamsByTeamId(Long teamId);

    /**
     * 批量删除队伍
     * 
     * @param teamIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTeamsByTeamIds(Long[] teamIds);


    /**
     * 查询队伍列表（封装vo）
     * @param teams
     * @return TeamsVo 集合
     */
    public List<TeamsVo> selectTeamsVoList(Teams teams);


    /**
     * 查询队伍详情（封装vo）
     * @param teamId
     * @return TeamsInfoVo集合
     */
    public TeamsInfoVo selectTeamsInfoVoList(Long teamId);


    /**
     * 根据活动id查询队伍详情（封装vo）
     * @param actId
     * @return TeamsVo集合
     */
    public List<TeamsVo> selectTeamsVoListByActId(@Param("actId") Long actId,@Param("userId") Long userId);



    /**
     * 根据队伍id列表查询，某个用户加入的队伍列表（封装vo）
     * @param
     * @return TeamsVo 集合
     */
    public List<TeamsVo> selectJoinedTeamsVoList(@Param("teamIds") List<Long> teamIds);




}
